/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upn.sigemfi.plt.bc;

import edu.upn.sigemfi.plt.be.Cuenta;
import edu.upn.sigemfi.plt.be.DetalleCuentaCliente;
import edu.upn.sigemfi.plt.be.TarjetaDebito;
import edu.upn.sigemfi.plt.be.TipoTipoCuenta;
import edu.upn.sigemfi.plt.be.TipoCuenta;
import edu.upn.sigemfi.seg.be.PersonaNatural;
import edu.upn.sigemfi.seg.be.PersonaJuridica;
import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author Administrador
 */
@Local
public interface CuentaFacadeLocal {

    void create(Cuenta cuenta);

    void edit(Cuenta cuenta);

    void remove(Cuenta cuenta);

    Cuenta find(Object id);

    List<Cuenta> findAll();

    Cuenta buscarCuentaPorNroCuenta(String nroCuenta);

    public List<Cuenta> buscarCuentasPorDni(String dni);

    public List<PersonaNatural> buscarPersonasNaturalesPorNroCuenta(String nroCuenta);

    public List<PersonaJuridica> buscarPersonasJuridicasPorNroCuenta(String nroCuenta);

    public List<Cuenta> buscarCuentasPorRuc(String dni);

    public List<Cuenta> buscarCuentaPorMontoActual(String signo, double montoActual);

    public DetalleCuentaCliente buscarAsociacionPorClienteYCuenta(long idCuenta, long idpersona);

    public String buscarModalidadAfiliacionPorNumeroCuenta(long idCuenta);

    public List<Cuenta> buscarCuentaPorTarjeta(TarjetaDebito fidPltTarjetaDebito);

    public List<Cuenta> buscarCuentasPorTipoCuenta(TipoTipoCuenta tipoTipoCuenta);

    public List<Cuenta> buscarCuentasPorTipoCuenta(TipoCuenta tipoCuenta);

    public List<TipoCuenta> buscarTipoCuentaPorTipoTipoCuenta(TipoTipoCuenta tipoTipoCuenta);
}
